import os
import fitz
from docx import Document


# 提取文本函数
def extract_text(file_path):
    """
    根据文件类型提取文本内容
    参数:
        file_path (str): 待解析的文件路径
    返回:
        str: 提取的文本内容或错误信息
    """
    
    try:
        file_ext = os.path.splitext(file_path)[1].lower()
        
        if file_ext == '.pdf':
            # PDF处理（使用PyMuPDF库）
            text = ""
            with fitz.open(file_path) as doc:
                for page in doc:
                    text += page.get_text()
            return text
            
        elif file_ext == '.docx':
            # Word处理
            doc = Document(file_path)
            return '\n'.join([para.text for para in doc.paragraphs])
            
        elif file_ext == '.txt':
            # 文本文件
            with open(file_path, 'r', encoding='utf-8') as f:
                return f.read()
                
        else:
            return "不支持的文件格式"
    except Exception as e:
        return f"文件解析失败: {str(e)}"